Polymorphism in ACL2
نویسندگان
چکیده
The logic of ACL2 is descended from λ-calculus via Common LISP. It is well-known that this logic is su cient to reason about arbitrary computations. However, λ-calculus is not today's dominant programming paradigm. To reason about today's programs, as opposed to today's computations, we need a logic that supports modern programming practices. In this paper, we present an approach that allows ACL2 to support polymorphism, a cornerstone of object-oriented programming. We will also show how polymorphism provides a convenient alternative to encapsulate for reasoning about classes of functions. At present, the solution is based on a translator which replaces ACL2 proof scripts including polymorphism with regular ACL2 proof scripts. In the future, we plan a version of ACL2 that supports polymorphism directly.
منابع مشابه
ACL2(ml): Machine-Learning for ACL2
ACL2(ml) is an extension for the Emacs interface of ACL2. This tool uses machine-learning to help the ACL2 user during the proof-development. Namely, ACL2(ml) gives hints to the user in the form of families of similar theorems, and generates auxiliary lemmas automatically. In this paper, we present the two most recent extensions for ACL2(ml). First, ACL2(ml) can suggest now families of similar ...
متن کاملExtending ACL2 with SMT Solvers
We present our extension of ACL2 with Satisfiability Modulo Theories (SMT) solvers using ACL2’s trusted clause processor mechanism. We are particularly interested in the verification of physical systems including Analog and Mixed-Signal (AMS) designs. ACL2 offers strong induction abilities for reasoning about sequences and SMT complements deduction methods like ACL2 with fast nonlinear arithmet...
متن کاملIvy : a Preprocessor and Proofchecker for First - Order
This case study shows how non-ACL2 programs can be combined with ACL2 functions in such a way that useful properties can be proved about the composite programs. Nothing is proved about the non-ACL2 programs. Instead, the results of the non-ACL2 programs are checked at run time by ACL2 functions, and properties of these checker functions are proved. The application is resolution/paramodulation a...
متن کاملEnhancements to ACL2 in Versions 6.2, 6.3, and 6.4
We report on improvements to ACL2 made since the 2013 ACL2 Workshop.
متن کاملChapter 1 IVY : A PREPROCESSOR AND PROOFCHECKER FOR FIRST - ORDER LOGICWilliam
This case study shows how non-ACL2 programs can be combined with ACL2 functions in such a way that useful properties can be proved about the composite programs. Nothing is proved about the non-ACL2 programs. Instead, the results of the non-ACL2 programs are checked at run time by ACL2 functions, and properties of these checker functions are proved. The application is resolution/paramodulation a...
متن کامل